Transfer of attributes between generations of characters

ABSTRACT

A system in which attributes are transferred between generations of characters in an interactive software experience is described. In an embodiment, data identifying one or more hardware attributes for a virtual entity are determined based on a physical user device associated with that virtual entity. One or more virtual attributes for the virtual entity are accessed and one or more behaviors of the virtual entity within the interactive software experience are modified based on a combination of the hardware and virtual attributes.

RELATED APPLICATIONS

This application claims priority to, and is a continuation of, U.S. patent application Ser. No. 14/509,940, filed on Oct. 8, 2014, which is hereby incorporated by reference.

BACKGROUND

There are many ways that a user can interact with a computer game and typically a user controls the game via a keyboard and mouse, games controller (which may be handheld or detect body movement) or touch screen, dependent upon the platform on which the game is being played (e.g. computer, games console or handheld device). A number of games have also been developed in which gameplay is enabled (or unlocked) through the use of physical character toys which are placed on a custom base connected to a games console. By placing different toys on the custom base, different gameplay is enabled.

The embodiments described below are not limited to implementations which solve any or all of the disadvantages of known methods of interacting with software.

SUMMARY

The following presents a simplified summary of the disclosure in order to provide a basic understanding to the reader. This summary is not an extensive overview of the disclosure and it does not identify key/critical elements or delineate the scope of the specification. Its sole purpose is to present a selection of concepts disclosed herein in a simplified form as a prelude to the more detailed description that is presented later.

A system in which attributes are transferred between generations of characters in an interactive software experience is described. In an embodiment, data identifying one or more hardware attributes for a virtual entity are received from a physical user device associated with that virtual entity. One or more virtual attributes for the virtual entity are also accessed and one or more behaviors of the virtual entity within the interactive software experience are modified based on a combination of the hardware and virtual attributes.

Many of the attendant features will be more readily appreciated as the same becomes better understood by reference to the following detailed description considered in connection with the accompanying drawings.

DESCRIPTION OF THE DRAWINGS

The present description will be better understood from the following detailed description read in light of the accompanying drawings, wherein:

FIG. 1 is a schematic diagram of a system comprising a wearable device and a computing device on which an interactive software experience runs;

FIG. 2 is a flow diagram of an example method of operation of the interactive software experience;

FIG. 3 is a schematic diagram showing when hardware attributes may be updated;

FIG. 4 is a schematic diagram showing the association between one or more smart beads and a virtual entity; and

FIG. 5 is a schematic diagram of a system comprising a modular toy and a computing device on which an interactive software experience runs.

Like reference numerals are used to designate like parts in the accompanying drawings.

DETAILED DESCRIPTION

The detailed description provided below in connection with the appended drawings is intended as a description of the present examples and is not intended to represent the only forms in which the present example may be constructed or utilized. The description sets forth the functions of the example and the sequence of steps for constructing and operating the example. However, the same or equivalent functions and sequences may be accomplished by different examples.

Methods and apparatus (e.g. hardware) for transferring attributes between generations of virtual entities (e.g. virtual characters, virtual objects, etc.) are described below. As described in more detail below, the behavior of a virtual entity within an interactive software experience (such as a computer game) is at least partially dependent upon a set of attributes associated with the virtual entity. The set of attributes comprises two subsets: virtual attributes which are managed within the interactive software experience and hardware attributes which are associated with a physical user device, such as a wearable device or other hardware token (e.g. a game piece). The physical user device stores data which identifies the hardware attributes, where this data may be the hardware attributes themselves or an identifier for the hardware attributes which may be stored elsewhere (e.g. in a remote computing device). The virtual attributes relate to the particular virtual entity and are not transferred between generations of virtual entities whilst the hardware attributes are associated with the physical user device and affect any virtual entity that is associated with the physical user device. Consequently, at least some of the hardware attributes (or some aspects of the hardware attributes) are transferred between generations of virtual entities which are associated with the same physical user device. It will be appreciated that in addition to the two subsets described, there may also be other attributes of the virtual entity (e.g. fixed digital attributes which are implemented by the designer of the interactive software experience, more persistent virtual attributes, temporary attributes stored in the physical user device, etc.).

The virtual entity is a digital representation of an entity which may, for example, be a character or object. The virtual entity may resemble a real world object (e.g. a person, a real world vehicle, etc.) or a fictional entity (e.g. an alien, elf, monster, fantasy vehicle, etc.).

The interactive software experience may be a game, social media application, personal organization application (e.g. which enables one or more users to set out a family/work schedule through physical tokens in the form of modules which represent particular tasks), multimedia application (e.g. which allows a user to compose photographs and music represented by physical tokens in the form of modules into a slideshow/movie for sharing), etc.

Although many of the present examples are described and illustrated as being implemented in a system comprising a wearable device, the system described is provided as an example and not a limitation. As those skilled in the art will appreciate, the present examples are suitable for application in a variety of different types of systems comprising physical user devices and in other examples, the physical user device may be a form of hardware token other than a wearable device (e.g. a game piece, a non-wearable fashion item such as a phone charm, an appliance, a robot, a piece of sports equipment, etc.). For example, where the physical user device is an appliance, the virtual entity may be a “personality” for that appliance and where the physical user device is a piece of sports equipment, the virtual entity may be a coach function.

FIG. 1 is a schematic diagram of a system 100 comprising a wearable device 102 and a computing device 104 on which an interactive software experience 106 runs. The interactive software experience 106 provides a graphical user interface (GUI) which is rendered on or by a display device 108 (e.g. a display screen or a projector) which may be integral to or separate from the computing device 104. In various examples where the display device 108 is not integrated within the computing device 104, the display device 108 may be a peripheral device connected to the computing device 102. In other examples, however, the display device 108 may be integrated within or connected to another computing device (not shown in FIG. 1), e.g. the computing device 102 may be located in a data center or other location remote from the user and the display device 108 may be integral to or connected to a computing device used by the user (e.g. a smart phone, desktop, laptop or tablet computer, games console, smart TV, etc.). Hence, irrespective of where the computing device 104 is located, a user can view the GUI of the interactive software experience 106.

The wearable device 102 or a part thereof (e.g. smart bead 110) is associated with a virtual entity within the interactive software experience (where the virtual entity may be a character, object, etc.) and comprises a storage element 112 which is arranged to store data identifying one or more hardware attributes for the associated virtual entity. As is described in more detail below, the hardware attributes may be fixed (i.e. such that they cannot be changed) or may change slowly/infrequently such that the attributes can continue to be used after the virtual entity is no longer associated with the particular wearable device 102 or part thereof (e.g. when the virtual entity comes to the end of its virtual life or is associated with a different physical user device or otherwise “leaves” the wearable device 102).

The wearable device 102 shown in FIG. 1 comprises one or more smart beads 110 and a band (or connecting element) 114 to which the smart beads can be attached. The term ‘smart bead’ is used herein to refer to an object which can be attached to (e.g. snapped, clipped or threaded onto) a connecting element (e.g. to form a bracelet or necklace) and which comprises a storage element 110 arranged to store data relating to the bead (such as an ID for the bead). For the purpose of the following discussion (and by way of example only), it is assumed that a smart bead 110 is associated with a virtual entity within the interactive software experience 106; however it will be appreciated that in other examples, the entire wearable device 102 (rather than a part thereof) may be associated with the virtual entity.

As described in more detail below, the interactive software experience 106 uses the hardware attributes which are identified using data stored in the wearable device 102 (i.e. in storage element 112 in smart bead 110), where the data may be the attributes themselves or an identifier for the attributes (where this identifier may be the ID of the bead). In order that the interactive software experience 106 can read the stored data (and potentially update that data, where the data comprises the hardware attributes themselves), the wearable device 102 comprises a communication module 116 arranged to communicate with the computing device 104 on which the interactive software experience runs. In the example shown in FIG. 1, the communication module 116 is not located in the smart bead 110 (which is the hardware token that is associated with the virtual entity and comprises the storage element 112) but is instead located within the connecting element 114 (e.g. within the clasp 118 of the connecting element 114). However, in other examples, the communication module 116 may instead be located within the smart bead 110 or within another smart bead on the same connecting element.

Any suitable wireless communication technology may be used by the communication module 116 to communicate with the interactive software experience 106, e.g. Bluetooth®, Bluetooth® Low Energy (BLE), WiFi™ or WiFi™ Direct, NFC, 802.15.4, etc. The communication module 116 may communicate directly with the computing device 104 running the interactive software experience 106 (arrow 118) or may communicate via a network 120 (e.g. a home network or the internet, arrow 122) and/or an intermediary device (e.g. a wireless access point or other computing device).

The computing device 104 which runs the interactive software experience 106 comprises a communication interface 124 which is arranged to receive data from the wearable device 102 (i.e. from communication module 116). Any suitable wired or wireless communication technology may be used by the communication interface 124 to communicate with the communication module 116. Examples of wireless technologies include, but are not limited to, Bluetooth®, BLE, WiFi™ or WiFi™ Direct, NFC, 802.15.4, etc.

The computing device 104 which runs the interactive software experience 106 further comprises one or more processors 126 which may be microprocessors, controllers or any other suitable type of processors for processing computer executable instructions to control the operation of the computing device 104 in order to run the interactive software experience 106. In some examples, for example where a system on a chip architecture is used, the processors 126 may include one or more fixed function blocks (also referred to as accelerators) which implement a part of the method of running the interactive software experience 106 in hardware (rather than software or firmware). Alternatively, or in addition, the functionality described herein can be performed, at least in part, by one or more hardware logic components. For example, and without limitation, illustrative types of hardware logic components that can be used include Field-programmable Gate Arrays (FPGAs), Program-specific Integrated Circuits (ASICs), Program-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs).

Platform software comprising an operating system 128 or any other suitable platform software may be provided at the computing device to enable application software, such as the interactive software experience 106 to be executed on the device. The computer executable instructions (including the computer executable instructions for the interactive software experience 106) may be provided using any computer-readable media that is accessible by computing device 104. Computer-readable media may include, for example, computer storage media such as memory 130 and communications media. Computer storage media, such as memory 130, includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information for access by a computing device. In contrast, communication media may embody computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave, or other transport mechanism. As defined herein, computer storage media does not include communication media. Therefore, a computer storage medium should not be interpreted to be a propagating signal per se. Propagated signals may be present in a computer storage media, but propagated signals per se are not examples of computer storage media. Although the computer storage media (memory 130) is shown within the computing device 104 it will be appreciated that the storage may be distributed or located remotely and accessed via a network 120 or other communication link (e.g. using communication interface 124).

In examples where the storage element 112 in the smart bead 110 stores an identifier for the hardware attributes, rather than the hardware attributes themselves, the hardware attributes may be stored in the memory 130 within the computing device 104 or alternatively, the communication interface 124 may be used to access hardware attributes stored in a further computing device 140 (e.g. via network 120 or other communication link).

The computing device 104 may also comprise an input/output controller 132 arranged to output display information to a display device 108 which, as described above, may be separate from or integral to the computing device 104. The display information provides the GUI for the interactive software experience. In various examples where the display device 108 is part of (or connected to) a separate computing device (and is not integral to or a peripheral of computing device 104), the display information may alternatively be transmitted via the communication interface 124. The input/output controller 132 may also be arranged to receive and process input from one or more devices, such as a user input device 134 (e.g. a mouse, keyboard, camera, microphone or other sensor). In some examples the user input device 134 may detect voice input, user gestures or other user actions and may provide a natural user interface (NUI). This user input may be used to provide inputs to the interactive software experience 106. In an embodiment the display device 108 may also act as the user input device 134 if it is a touch sensitive display device. The input/output controller 132 may also output data to other devices which are not shown in FIG. 1.

It will be appreciated that inputs to the interactive software experience 106 may also be received via the communication interface 124. For example, where the display device 108 is remote from the computing device 104 and is part of, or connected to, another computing device, inputs may be made by a user via a user input device which is part of, or connected to, that other computing device and the input commands may be communicated from that computing device to the computing device 104 running the interactive software experience 106 via the communication interface 124.

Any of the input/output controller 132, display device 108 and the user input device 134 may comprise NUI technology which enables a user to interact with the computing-based device in a natural manner, free from artificial constraints imposed by input devices such as mice, keyboards, remote controls and the like. Examples of NUI technology that may be provided include but are not limited to those relying on voice and/or speech recognition, touch and/or stylus recognition (touch sensitive displays), gesture recognition both on screen and adjacent to the screen, air gestures, head and eye tracking, voice and speech, vision, touch, gestures, and machine intelligence. Other examples of NUI technology that may be used include intention and goal understanding systems, motion gesture detection systems using depth cameras (such as stereoscopic camera systems, infrared camera systems, RGB camera systems and combinations of these), motion gesture detection using accelerometers/gyroscopes, facial recognition, 3D displays, head, eye and gaze tracking, immersive augmented reality and virtual reality systems and technologies for sensing brain activity using electric field sensing electrodes (EEG and related methods).

FIG. 2 is a flow diagram of an example method of operation of the interactive software experience 106. The interactive software experience 106 receives data identifying one or more hardware attributes from a wearable device 102 or part thereof (block 202), e.g. as stored in the storage element 112 within a smart bead 110. The wearable device 102 or part thereof (e.g. smart bead 110) is associated with a virtual entity (e.g. a virtual character) within the interactive software experience 106 and so the hardware attributes received are also associated with the same virtual entity. For the purposes of the following description it is assumed that a smart bead is associated with a virtual entity (rather than the entire wearable device 102); however in other examples, it may be the entire wearable device 102 (rather than a part thereof) that is associated with a virtual entity.

As described above, the data identifying one or more hardware attributes which is received (in block 202) may be the one or more hardware attributes themselves (which may be stored and/or cached on the wearable device) or may be an identifier for one or more hardware attributes which are stored separately from the wearable device (e.g. within the interactive software experience or on a server in a data center). Where an identifier (and not the attributes themselves) is received (in block 202), the interactive software experience 106 accesses the one or more hardware attributes using the data (e.g. the ID) received (block 203).

In addition to receiving/accessing hardware attributes associated with a virtual entity (in block 202 or 203), the interactive software experience accesses one or more virtual attributes associated with the same virtual entity (block 204). These virtual attributes may be accessed from within the interactive software experience 106 or from data storage which is used by the interactive software experience to store virtual variables (e.g. memory 130) or from a separate computing device (e.g. computing device 140) which may be a server in a data center. The interactive software experience 106 modifies the behavior of the virtual entity based on a combination of the hardware and virtual attributes (block 206).

In various examples, the hardware and the virtual attributes for a virtual entity may be non-overlapping and affect different aspects of the behavior of the virtual entity. For example, hardware attribute A may be mapped to behavioral trait A, virtual attribute B may be mapped to behavioral trait B, etc. In other examples, however, there may be some overlap in that more than one attribute may affect the same behavioral trait (e.g. hardware attribute C and virtual attribute C may both affect behavioral trait C) and/or the same attribute may be stored as both a hardware and a virtual attribute and these corresponding attributes may have the same or different values. In the case of any overlap (i.e. where more than one attribute affects the same behavioral trait), the interactive software experience 106 uses predefined rules or algorithms to combine the overlapping attributes to determine how the behavioral trait is modified. In some examples, where a hardware and a virtual attribute overlap, the hardware attribute may override the overlapping virtual attribute, in other examples the overlapping attributes may be combined mathematically (e.g. using addition, subtraction, multiplication, weighted sums, averaging, etc.) or one of them may be selected at random, etc.

Even in cases where there is no overlap, the interactive software experience 106 may use predefined rules or algorithms to determine which of the hardware attributes affect the behavior of the virtual entity. For example, this may mean that there is no guarantee that all the hardware attributes are used.

In some examples, a hardware attribute may be incompatible with a virtual entity in which case the hardware attribute may be ignored when modifying the behavior of the virtual entity or alternatively, an error may be raised which prevents the smart bead 110 from remaining associated with the virtual entity (e.g. it breaks the association between the smart bead 110 and the virtual entity). For example, where the smart bead is an “elf bead” it may not be possible (as a result of incompatible hardware attributes) to associate the bead with a virtual character which is a troll in the interactive software experience.

The hardware attributes may affect any behavior of the virtual entity; however, in various examples the hardware attributes may affect one or more of:

-   The appearance of the virtual entity in a virtual world within the     interactive software experience; -   Speech patterns/accent of the virtual entity (e.g. where the virtual     entity is a virtual character); -   Motion of the virtual entity (e.g. gait, mannerisms, etc.); -   The type of the virtual entity (e.g. elf/gnome, male/female, etc.);     and -   Behavioral traits or overall characteristics of the virtual entity     (e.g. strength, aggressiveness).

It will be appreciated that although FIG. 2 shows the hardware attributes being retrieved ahead of the virtual attributes, in various examples this may be performed the other way round (virtual attributes then hardware attributes) or substantially simultaneously.

At some point in time, the virtual entity may cease to be associated with the particular physical user device (e.g. smart bead). This may, for example, be at the end of the lifetime of the virtual entity (e.g. when it dies, is regenerated or otherwise ceases to exist), or when the virtual entity moves to a virtual-only existence (and is no longer associated with any physical user device) or when the virtual entity “moves” and is instead associated with a different physical user device. When this happens, the hardware attributes remain linked to the physical user device and are subsequently associated with another virtual entity which is associated with that physical user device, where this may be a newly created virtual entity or an existing virtual entity which is moving from one physical user device to another. This next virtual entity which is associated with a particular physical user device (e.g. the newly created virtual entity) may be considered the next generation of virtual entity even though the virtual entity may be of a same or different type to the previous virtual entity and even though the virtual entity may be moving between physical user devices and may not be newly created.

In contrast, if a virtual entity ceases to exist the virtual attributes do not carry forward to any newly created virtual entity which starts afresh within the interactive software experience, but are instead reset or deleted (block 207) e.g. a newly created virtual entity starts again within a game rather than continuing at a level where the previous virtual entity ceased to exist, even if the two virtual entities are associated with the same physical user device. The method shown in FIG. 2 is then repeated, with the hardware attributes for the newly created virtual entity being received/accessed (in block 202 or 203) and combined with virtual attributes (accessed in block 204 and which may now have default values for the new entity) to modify the behavior of the virtual entity (in block 206).

In various examples, the same hardware attributes may always be used to determine the behavior of an associated virtual entity (in block 206) and these hardware attributes may remain the same from generation to generation or alternatively, the hardware attributes may be updated when a virtual entity is regenerated or otherwise ceases to be associated with the physical user device. When updating the hardware attributes, the interactive software experience generates updated hardware attributes (block 208) and transmits these updated values or details of the changes made to the hardware attributes to the wearable device or wherever the hardware attributes are stored (block 210).

In other examples, the hardware attributes may (in addition or instead) change slowly over the lifetime of a virtual entity (whilst that virtual entity is associated with the physical user device). As with the changes on regeneration, the interactive software experience generates updated hardware attributes (e.g. as in block 208) and transmits these updated values or details of the changes made to the hardware attributes to the wearable device or other attribute store (e.g. as in block 210); however, the updates may be transmitted to the wearable device or other attribute store more frequently than when regeneration occurs.

Examples of the updating of the hardware attributes are shown in FIG. 3. FIG. 3 shows a time line 300 with points t₁, t₂, t₃ where virtual entities are regenerated, such that a first virtual entity is created at time t₁ and ceases to exist (e.g. dies) at time t₂ to be replaced by a second virtual entity which ceases to exist (e.g. dies) at time t₃. In a first example 31, the hardware attributes (denoted HW) remain the same throughout the time line 300 and so whenever the behavior of the virtual entity is modified using the method shown in FIG. 2, the same value of hardware attributes (HW) is used. Furthermore, whenever the virtual entity is regenerated, the same value of hardware attributes (HW) is also used. It will be appreciated that over the time line the value of the virtual attributes will change at least at points t₁, t₂, t₃ (e.g. they will be reset when the virtual entity is regenerated) and in many examples will also change during the lifespan of any virtual entity.

In the second example 32, the hardware attributes are changed at the points t₁, t₂, t₃ where virtual entities are regenerated (e.g. from HW₁ to HW₂ at t₂) and so the same hardware attributes are always used for the same virtual entity whenever the behavior of the virtual entity is modified using the method shown in FIG. 2 (e.g. HW₁ for the first virtual entity, HW₂ for the second virtual entity and HW₃ for the third virtual entity). As described above, the value of the virtual attributes used when modifying behavior (in block 206) will change at least at points t₁, t₂, t₃ and in many examples also during the lifespan of any virtual entity.

In the third example 33, the hardware attributes are changed during the lifespan of a virtual entity (e.g. between t₁ and t₂) such that different hardware attributes may be used for a particular virtual entity when the behavior of the virtual entity is being modified using the method shown in FIG. 2. Although the third example shows discrete positions in time where the hardware attributes are changed (e.g. from HW₁ to HW₂) in other examples there may be a substantially continuous (but slow) change to the hardware attributes over time. In an example, the virtual attributes may be used to modify the hardware attributes in a slow averaging process.

Although FIG. 3 is described in terms of virtual entities which cease to exist at points t₁, t₂, t₃ on the time line 300, it may also be used to show changes to the hardware attributes where the virtual entity associated with a physical user device changes at points t₁, t₂, t₃ irrespective of whether this is due to a virtual entity ceasing to exist, moving to another physical user device, moving to a virtual-only phase, etc.

In various examples, the updates that are made to the hardware attributes (independent of when they are made) may be based on external factors (i.e. real world activities of the user) and/or factors within the interactive software experience. In various examples, a random subset of the hardware attributes may be carried forward from one generation to another (e.g. when the virtual entity is regenerated, the hardware attributes are updated and one or more of the hardware attributes are deleted or reset to a default value).

In various examples, the updates that are made to the hardware attributes (independent of when they are made) may be dependent on how well the user has looked after the virtual entity (in the interactive software experience) and the smart bead (in the real world). For example, the interactive software experience may set the user tasks to perform in the real and/or virtual world (where the virtual world is within the interactive software experience) and depending on whether these are performed and/or how well they are performed, the hardware attributes may be modified in different ways. In an example, if the tasks are performed well, the hardware attributes are modified so as to cause positive changes in behavior of the virtual entity and if the tasks are not performed or are performed badly, the hardware attributes are modified so as to cause negative changes in the behavior of the virtual entity. In an example, the tasks may require action in both the real world (with the smart bead, such as taking it to a particular location or doing a minimum amount of exercise) and the virtual world (with the virtual entity, such as completing a challenge in a virtual world).

When regeneration of a virtual entity occurs may be dependent on the particular interactive software experience. In some examples, a virtual entity may have a fixed lifetime in terms of a gameplay interval (e.g. 100 battles or 1000 minutes of gameplay) or a real world interval (e.g. 1 week). In other examples the lifetime may be variable in length and may be influenced by one or more different parameters (e.g. based on parameters within the interactive software experience, based on activities of the user in the real world and/or the virtual world, etc.). In further examples, a user may cause a first virtual entity to cease to be associated with a physical user device and a second virtual entity to instead be associated with the same physical user device (e.g. via controls in the interactive software experience).

In the examples described above, the interactive software experience modifies the behavior of a virtual entity based on the data identifying hardware attributes received from a single source (e.g. wearable device 102 or smart bead 110). In other examples, however, the interactive software experience may modify the behavior of a virtual entity based on data identifying hardware attributes received from multiple wearable devices and/or from multiple smart beads on the same wearable device. Each of these multiple wearable devices and/or multiple smart beads may be associated with the same virtual entity or alternatively, one of the multiple wearable devices/smart beads may be associated with the virtual entity and the other wearable devices/smart beads may provide their hardware attributes because they are in close proximity to the wearable device/smart bead that is associated with the virtual entity. This is shown graphically in FIG. 4.

FIG. 4 shows two scenarios 41, 42 each of which comprise a virtual entity 402. In the first scenario 41, there are multiple smart beads 110 and each of the smart beads is associated with the virtual entity 402. The hardware attributes identified by data stored on each of the smart beads 110 affects the behavior of the virtual entity (as in block 206 of FIG. 2) as indicated by the arrows 404. The multiple smart beads 110 may be part of the same wearable device or different wearable devices (e.g. owned and/or worn by different users). In the second scenario 42, a single smart bead 110 is associated with the virtual entity 402 and the hardware attributes identified by data stored on that smart bead 110 affect the behavior of the virtual entity (as in block 206 of FIG. 2) as indicated by the arrow 404. The hardware attributes identified by data stored on one or more proximate smart beads 406 (i.e. proximate to smart bead 110) also affect the behavior of the virtual entity (as in block 206 of FIG. 2) as indicated by the dotted arrows 408. The proximate smart beads 406 may be part of the same wearable device as the smart bead 110, or they may be part of a proximate wearable device. Over time the smart beads which are proximate to smart bead 110 will change and so the hardware attributes which are used to modify the behavior of the virtual entity (in block 206 of FIG. 2) will also change.

In the examples described above, a single smart bead 110 or wearable device 102 is associated with one virtual entity. In various examples, however, a smart bead 110 (or wearable device or part thereof) may be associated with multiple virtual entities. Where a smart bead 110 is associated with multiple virtual entities, the same hardware attributes (identified by data stored in storage element 112) may be used for all of the associated virtual entities or the smart bead 110 may store (in storage element 112) data identifying multiple sets of hardware attributes (e.g. one per associated virtual entity or one for a subset of the associated virtual entities). As described above, the data identifying one or more hardware attributes may comprise the hardware attributes themselves (e.g. multiple sets of hardware attributes) or identifiers for hardware attributes (e.g. one or more identifiers which identify multiple sets of hardware attributes).

In some examples, the different virtual entities associated with a single smart bead may be independent of each other (e.g. they may not interact within the interactive software experience or they may be part of different interactive software experiences or different virtual worlds within the same interactive software experience). In other examples, the different virtual entities associated with a single smart bead may be interrelated (e.g. they may interact within a virtual world of the interactive software experience). In examples where interrelated virtual entities have different hardware attributes identified by data stored on the same smart bead, these different hardware attributes may influence the updating of hardware attributes for any one or more of the virtual entities (e.g. in block 208 of FIG. 2), e.g. there may be a slow averaging of the different sets of hardware attributes over time so that the different sets become more similar over time.

In the examples described above, the hardware attributes are identified by data stored on a wearable device or part thereof. However, the methods described herein are also applicable to other physical user devices or hardware tokens (e.g. game pieces) which are not wearable devices. FIG. 5 is a schematic diagram of a system 500 which is a variation on that shown in FIG. 1 and described above. Instead of comprising a wearable device 102 as in the system 100 in FIG. 1, the system 500 in FIG. 5 comprises a modular toy 502 (which may be a game piece). The system 500 further comprises a computing device 104 on which an interactive software experience 106 runs. The modular toy 502 comprises a core module 504 and a plurality of peripheral modules 506 and each module 504, 506 comprises a storage element 508. As shown in FIG. 5, the core module 504 further comprises a communication module 510 which is arranged to communicate with the computing device 104 which runs the interactive software experience 106.

The modular toy 502 or a part thereof (e.g. one of the modules 504, 506) is associated with a virtual entity within the interactive software experience (where, as described above, the virtual entity may be a character, object, etc.) and comprises a storage element 508 which is arranged to store data identifying one or more hardware attributes for the associated virtual entity. In the example shown in FIG. 5 each module comprises a storage element 508; however, in other examples only one of the modules (e.g. the core module 504) or a subset of the modules may comprise a storage element 508. In an example, each of the modules 504, 506 may be associated with the same virtual entity such that the behavior of that virtual entity is modified based on a combination of the virtual attributes for that entity and the hardware attributes identified by data stored in each of the modules 504, 506. In another example, each of the modules 504, 506 is associated with a part of the virtual entity (e.g. a leg module is associated with a leg of the virtual entity) and so the behavior of a part of the virtual entity is modified based on a combination of the virtual attributes for the virtual entity (or the specific part of the virtual entity) and the hardware attributes identified by data stored in the particular module which is associated with that part of the virtual entity.

In order that the interactive software experience 106 can receive the stored data identifying the hardware attributes (and potentially update that data, where the data comprises the hardware attributes themselves), the modular toy 502 comprises a communication module 510 arranged to communicate with the computing device 104 on which the interactive software experience runs. In the example shown in FIG. 5, the communication module 510 is located in the core module 502 and the communication module 510 is used to communicate the hardware attributes from any of the modules in the modular toy. In other examples, there may be communication modules within each module.

Any suitable wireless communication technology may be used by the communication module 510 to communicate with the interactive software experience 106, e.g. Bluetooth®, Bluetooth® Low Energy (BLE), WiFi™ or WiFi™ Direct, NFC, 802.15.4, etc. The communication module 510 may communicate directly with the computing device 104 running the interactive software experience 106 (arrow 118) or may communicate via a network 120 (e.g. a home network or the internet, arrow 122) and/or an intermediary device (e.g. a wireless access point or other computing device).

The computing device 104 which runs the interactive software experience 106 comprises a communication interface 124 which is arranged to receive data from the modular toy 502 (i.e. from communication module 510). As described above, any suitable wired or wireless communication technology may be used by the communication interface 124.

The computing device 104 which runs the interactive software experience 106 further comprises one or more processors 126 and a memory 130 which is arranged to store computer executable instructions for the interactive software experience 106 and also for an operating system 128. The computing device 104 may also comprise an input/output controller 132 (described above).

The modular toy 502 shown in FIG. 5 is formed from a plurality of physical modules which are each a sub-component of the coherent physical whole object (the toy). Once assembled, the coherent physical whole object is physically attached together to form a single object, i.e. requiring a deliberate action by the user to detach (e.g. an applied force to overcome a mechanical friction fit or a magnetic attachment holding the modules together, or an unclasping or threading action so that a module can be removed or disconnected from an adjacent module). This is in contrast to systems in which a module or modules are sensed to be near or touching one another, but no mechanical element holds them together (with the exception of gravity, if the whole assembly is only lifted vertically from underneath). The coherent physical whole object (i.e. toy 502) is moveable freely (e.g. in three dimensions) by a user and is capable of communicating with the interactive software experience while it is in motion. The coherent physical object (and/or the modules from which it is formed) may comprise mechanical articulation or movement affordances, e.g. it may have joints such as hinges, or some elements may be mobile compared to other elements, e.g. sliding or rotating with respect to one another.

In the system described herein, the same physical piece of hardware is associated with a sequence of virtual entities, one after the other, and these virtual entities (irrespective of the reason that they cease to be associated with a particular piece of hardware) may be considered to represent different generations of virtual entities. The interactive software experience in which the virtual entities exist may provide a GUI which enables a user to view the series of virtual entities that have been associated with a particular piece of hardware (e.g. a smart bead) over time. Such a GUI may enable a user to explore the sequence of virtual entities, e.g. by scrolling forwards and backwards in time to view the different virtual entities and/or to see how the hardware attributes have changed over time.

An example provides a method comprising: receiving, at a computing device from a physical user device, data identifying one or more hardware attributes for a virtual entity in an interactive software experience, the physical user device being associated with the virtual entity; accessing one or more virtual attributes for the virtual entity; and modifying one or more behaviors of the virtual entity within the interactive software experience based on a combination of the hardware and virtual attributes.

The physical user device may be a wearable device or a part thereof, such as a smart bead.

The virtual entity may be a virtual character.

The method may further comprise: associating a second virtual entity in the interactive software experience with the physical user device; receiving, at the computing device from the physical user device, data identifying one or more hardware attributes for the second virtual entity; accessing one or more virtual attributes for the second virtual entity; and modifying one or more behaviors of the second virtual entity within the interactive software experience based on a combination of the hardware and virtual attributes for the second virtual entity.

Additionally, the method may further comprise, in response to the virtual entity ceasing to exist: resetting the virtual attributes for virtual entity within the interactive software experience.

The method may further comprise: generating updated hardware attributes for the virtual entity; and transmitting updated hardware attributes to the physical user device or an attribute store.

The updated hardware attributes may be generated in response to the virtual entity ceasing to exist within the interactive software experience.

The updated hardware attributes may be generated using the virtual attributes for the virtual entity, based on real world activity of a user and/or based on tasks specified by the interactive software experience and performed by a user.

The method may further comprise: receiving, at the computing device from one or more additional physical user devices, data identifying further hardware attributes for the virtual entity, and wherein the modifying of one or more behaviors may be based on a combination of the hardware attributes, the further hardware attributes and the virtual attributes.

The one or more additional physical user devices may all be associated with the virtual entity or they may be in proximity to the physical user device which is associated with the virtual entity.

The method may be least partially carried out using hardware logic.

An example provides a system comprising a physical user device associated with an interactive software experience running on a separate computing device, the physical user device comprising: a storage element arranged to store data identifying a set of hardware attributes associated with a virtual entity within the interactive software experience; and a communication module arranged to communicate the data identifying the set of hardware attributes to the interactive software experience in order to modify one or more behaviors of the virtual entity within the interactive software experience.

The data identifying the set of hardware attributes may comprise the set of hardware attributes or an identifier for the set of hardware attributes. Where the data identifying the set of hardware attributes comprises an identifier for the set of hardware attributes, the hardware attributes may be stored in a remote attribute store.

The physical user device may be a wearable device comprising a smart bead attached to a connecting element. The smart bead may be associated with the virtual entity and may comprise the storage element.

The physical user device may be a modular toy formed from a plurality of modules.

An example provides one or more tangible device-readable media with device-executable instructions that, when executed by a computing system, direct the computing system to: access a set of hardware attributes for a virtual entity within an interactive software experience from a physical hardware device associated with the virtual entity; access a set of virtual attributes for the virtual entity; modify at least one aspect of the virtual entity based on a combination of the hardware and virtual attributes; and in response to the virtual entity ceasing to exist within the interactive software experience, to reset the virtual attributes and associate a second virtual entity with the physical hardware device and the set of hardware attributes.

The virtual attributes may be stored in the interactive software experience or an attribute store.

An example provides a physical user device associated with an interactive software experience running on a separate computing device, the physical user device comprising: a means for storing data identifying a set of hardware attributes associated with a virtual entity within the interactive software experience; and a means for communicating the data identifying the set of hardware attributes to the interactive software experience in order to modify one or more behaviors of the virtual entity within the interactive software experience.

The term ‘computer’ or ‘computing-based device’ is used herein to refer to any device with processing capability such that it can execute instructions. Those skilled in the art will realize that such processing capabilities are incorporated into many different devices and therefore the terms ‘computer’ and ‘computing-based device’ each include PCs, servers, mobile telephones (including smart phones), tablet computers, set-top boxes, media players, games consoles, personal digital assistants and many other devices.

The methods described herein may be performed by software in machine readable form on a tangible storage medium e.g. in the form of a computer program comprising computer program code means adapted to perform all the steps of any of the methods described herein when the program is run on a computer and where the computer program may be embodied on a computer readable medium. Examples of tangible storage media include computer storage devices comprising computer-readable media such as disks, thumb drives, memory etc and do not include propagated signals. Propagated signals may be present in a tangible storage media, but propagated signals per se are not examples of tangible storage media. The software can be suitable for execution on a parallel processor or a serial processor such that the method steps may be carried out in any suitable order, or simultaneously.

This acknowledges that software can be a valuable, separately tradable commodity. It is intended to encompass software, which runs on or controls “dumb” or standard hardware, to carry out the desired functions. It is also intended to encompass software which “describes” or defines the configuration of hardware, such as HDL (hardware description language) software, as is used for designing silicon chips, or for configuring universal programmable chips, to carry out desired functions.

Those skilled in the art will realize that storage devices utilized to store program instructions can be distributed across a network. For example, a remote computer may store an example of the process described as software. A local or terminal computer may access the remote computer and download a part or all of the software to run the program. Alternatively, the local computer may download pieces of the software as needed, or execute some software instructions at the local terminal and some at the remote computer (or computer network). Those skilled in the art will also realize that by utilizing conventional techniques known to those skilled in the art that all, or a portion of the software instructions may be carried out by a dedicated circuit, such as a DSP, programmable logic array, or the like.

Any range or device value given herein may be extended or altered without losing the effect sought, as will be apparent to the skilled person.

Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.

It will be understood that the benefits and advantages described above may relate to one embodiment or may relate to several embodiments. The embodiments are not limited to those that solve any or all of the stated problems or those that have any or all of the stated benefits and advantages. It will further be understood that reference to ‘an’ item refers to one or more of those items.

The steps of the methods described herein may be carried out in any suitable order, or simultaneously where appropriate. Additionally, individual blocks may be deleted from any of the methods without departing from the spirit and scope of the subject matter described herein. Aspects of any of the examples described above may be combined with aspects of any of the other examples described to form further examples without losing the effect sought.

The term ‘comprising’ is used herein to mean including the method blocks or elements identified, but that such blocks or elements do not comprise an exclusive list and a method or apparatus may contain additional blocks or elements.

The term ‘subset’ is used herein to refer to a proper subset such that a subset of a set does not comprise all the elements of the set (i.e. at least one of the elements of the set is missing from the subset).

It will be understood that the above description is given by way of example only and that various modifications may be made by those skilled in the art. The above specification, examples and data provide a complete description of the structure and use of exemplary embodiments. Although various embodiments have been described above with a certain degree of particularity, or with reference to one or more individual embodiments, those skilled in the art could make numerous alterations to the disclosed embodiments without departing from the spirit or scope of this specification. 

1. A method comprising: identifying a virtual entity in an interactive software experience, wherein: the virtual entity has one or more virtual attributes that are managed within the interactive software experience; and the virtual entity is capable of one or more virtual behaviors, wherein an individual behavior is affected by one or more of the virtual attributes of the virtual entity; determining one or more hardware attributes for the virtual entity in the interactive software experience based at least on hardware attributes associated with a physical user device; and modifying the individual behavior of the virtual entity within the interactive software experience based on a combination of the hardware attributes and the virtual attributes.
 2. A method as recited in claim 1, wherein the physical user device is a wearable device or a part thereof.
 3. A method as recited in claim 2, wherein the physical user device is a smart bead.
 4. A method as recited in claim 1, wherein the virtual entity is a virtual character.
 5. A method as recited in claim 1, further comprising: identifying a second virtual entity in the interactive software experience, the second virtual entity having a second set of one or more virtual attributes that are managed within the interactive software experience; associating the second virtual entity in the interactive software experience with the physical user device; determining one or more hardware attributes for the second virtual entity based at least on the hardware attributes associated with the physical user device; and modifying one or more behaviors of the second virtual entity within the interactive software experience based on a combination of the virtual attributes for the second virtual entity and the hardware attributes.
 6. A method as recited in claim 5, further comprising, in response to the virtual entity ceasing to exist: resetting the virtual attributes for the virtual entity to default virtual attribute values within the interactive software experience.
 7. A method as recited in claim 1, further comprising generating updated hardware attributes for the virtual entity.
 8. A method as recited in claim 7, wherein the updated hardware attributes are generated in response to the virtual entity ceasing to exist within the interactive software experience.
 9. A method as recited in claim 7, wherein the updated hardware attributes are generated using the virtual attributes for the virtual entity.
 10. A method as recited in claim 7, wherein the updated hardware attributes are generated based on real world activity of a user.
 11. A method as recited in claim 7, wherein the updated hardware attributes are generated based on tasks specified by the interactive software experience and performed by a user.
 12. A method as recited in claim 7, further comprising: transmitting the updated hardware attributes to a data store associated with the physical user device.
 13. A method as recited in claim 1, further comprising: determining further hardware attributes for the virtual entity in the interactive software experience based at least on hardware attributes associated with one or more additional physical user devices, and wherein modifying one or more behaviors of the virtual entity in the interactive software experience is based on a combination of the hardware attributes, the further hardware attributes, and the virtual attributes.
 14. A method as recited in claim 13, wherein the one or more additional physical user devices are also associated with the virtual entity.
 15. A method as recited in claim 13, wherein the one or more additional physical user devices are in proximity to the physical user device which is associated with the virtual entity.
 16. A method as recited in claim 1 at least partially carried out using hardware logic.
 17. One or more computer storage media storing executable instructions that, when executed by a computing system, direct the computing system to: identify a virtual entity within an interactive software experience, the virtual entity having associated therewith: virtual attributes that are maintained within the interactive software experience; and behaviors, wherein one or more behaviors are affected based on the virtual attributes; determine a set of hardware attributes for the virtual entity within the interactive software experience based on stored data that identifies hardware attributes associated with a physical hardware device; modify at least one behavior of the virtual entity based on a combination of the hardware attributes and the virtual attributes; and in response to the virtual entity ceasing to exist within the interactive software experience, reset the virtual attributes to default values and determine a set of hardware attributes for a second virtual entity based on the stored data that identifies the hardware attributes associated with the physical hardware device.
 18. One or more computer storage media as recited in claim 17, wherein the stored data is stored on the physical user device.
 19. One or more computer storage media as recited in claim 17, wherein the stored data is stored separate from the physical hardware device.
 20. One or more computer storage media as recited in claim 19, wherein the physical hardware device stores an identifier that is associated with the stored data. 